Methods and devices for grouping cells

ABSTRACT

Rounded solutions of a linear program are used to partition or group cells, such as cells in a wireless network, in order to provide efficient approximations of network updating and paging costs.

BACKGROUND OF THE INVENTION

As the name implies, cellular networks are made up of many separate cells. Commonly, cells are grouped into mobile switching center (MSC) domains in order to route calls between individual cells and the remainder of a wireless network (e.g., cellular, Personal Communications System (PCS), etc.). When a user of a wireless device (e.g., cell phone, pager or PDA) moves from one location to another, the network must track her location, or more precisely, the location of her mobile device. Typically, there are thousands of such movements each second in a modern wireless network. A wireless network tracks the number of such movements and associates a network cost to them. This cost is referred to as an updating cost.

While updating costs are associated with tracking the movement of users, other costs, referred to as paging costs, are associated with finding users. For example, when one user sends a call from one wireless network to a user within another wireless network, the receiving network must identify and locate the intended recipient of the call within its many cells. Typically, existing wireless networks send a page to each cell within an MSC where the recipient might be located. For example, if there are 100 cells within an MSC, a typical wireless network will send a page to all 100 cells even though the recipient is located in only one of the cells. The network tracks these pages and assigns a paging cost to each page.

Owners, operators and others involved in wireless networks desire to minimize or reduce the updating and paging costs associated with their networks. To do so, it is desirable to devise techniques which partition or group cells in such a way that both updating and paging costs are minimized. This has been a daunting challenge for it has been thought that even the mathematical statements (i.e., equations), which represent the problem have, heretofore, only been hypothetically solvable using exhaustive searches/iterations (none have actually been completed).

Finding a way to partition cells is a “balancing act” of sorts. Ideally, updating costs could be minimized by limiting the number of so-called “location area boundaries” that a user traverses when she moves from place to place. One way of doing this is to include every cell in one large “location area” (LA). As one might surmise, while this minimizes updating costs, it greatly increases paging costs because the larger the number of cells, the larger the number of pages that must be sent. The reverse is also true (i.e., creating new location areas by removing cells from an original location area may decrease paging costs but increase updating costs).

To date, though some have been able to formulate mathematical equations representing the parameters involved in partitioning cells, none have been able to guarantee that their solutions are efficient.

SUMMARY OF THE INVENTION

The present invention uses a linear program which, after its solutions are rounded, provides an efficient means of partitioning or grouping cells in order to approximate an optimum sum of both updating and paging costs for a wireless network or the like.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a simplified view of cells within a wireless network.

FIG. 2 depicts a simplified view of cells grouped into location areas.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 1, there is shown a wireless network 1 which comprises cells a-j (where “j” is the last cell in the network). The task at hand is to partition the cells a-j such that the updating and paging costs associated with the operation of wireless network 1 are minimized.

FIG. 1 also shows a second wireless network 200 comprising cell aa. Greatly simplified, the present invention seeks to minimize the sum of the paging costs (which occur, for example, when a user within cell aa attempts to contact a user within wireless network 1) and updating costs (which occur, for example, when a user within network 1 moves from one cell (e.g., cell a) to another cell (e.g., cell b) within network 1).

In one embodiment of the present invention, cells a-j are grouped, clustered or partitioned by: generating a linear program representing a sum of a contribution of each cell a-j to a total paging cost and a total updating cost taking into account some constraints; and assigning each cell to a group (e.g., location area) in accordance with solutions of the linear program.

Having just provided an overview of the present invention, a more detailed explanation will now be presented.

Wireless network 1 may be represented by a graph G(V, E), where V is the set of [V]ertices or nodes of the graph and E is the set of [E]dges. Each vertex represents a cell in the network, and there is an edge or boundary between vertices in the graph if the cells in the network are adjacent. The number of vertices (represented by |V|) equals n and the number of edges |E| equals m. Each vertex has a unique identification number i∈[1 . . . n] and a weighted value, w_(i), associated with each cell that reflects each cell's user population (e.g., the number of users which are operating within a given cell during a given period of time, such as rush hour). Every edge, denoted (i, j)∈E, has a weighted value, r_(ij), associated with each edge between adjacent cells and which specifies the amount of user traffic between endpoints of each edge in both directions over a given period of time. For completeness sake, r_(ij) is set equal to 0 for every pair of nodes (i, j)∈V_((i j))∉E.

It follows that the weighted value, w_(i), is representative of the paging cost associated with a cell because any time a call comes in to a user in that cell, some paging must be carried out. Similarly, the weighted value, r_(ij), represents update costs if cells i and j are in different location areas.

FIG. 2 depicts a greatly simplified illustration of how weighted values w_(i) and r_(ij) are used. Cells are shown in FIG. 2 grouped into location areas A and B. Location area A is given a weight w_(A) equal to 8. Again, greatly simplified, this indicates that there are 8 cells within location area A. Location area B is given a weight w_(B) equal to 4. Suppose further that the number of times a user traverses the boundary or edge between location area A and adjacent location area B is equal to 5 for a given time period, then r_(AB)=5.

One way of understanding the values shown in FIG. 2, is to associate each w_(i) with the number of cells within a location area which may have to be paged. Because there is a greater number of cells within location area A, intuitively it may occur to the reader that the paging costs associated with location area A is higher than location area B; that is correct.

On the other hand, user traffic weight r_(ij) represents the number of times a user passes from one adjacent location area into another. For example, if a user passes from location area A into location area B that amounts to one unit of traffic. Five units of traffic between location area A and location area B indicates that in average five users traverse the edge over a given time period. Perhaps more commonly, when r_(AB)=5 this represents five separate traversals of the same edge by five separate users. It should be understood that a user may traverse an edge in either direction, e.g., three users travel from A to B and two users travel from B to A, the total adding up to five units of traffic between the endpoints of the edge represented by the “⇄” in FIG. 2.

The first step in arriving at a solution which has some degree of reliability is to first formulate an expression of the problem which is solvable without the need to resort to exhaustive searches. To that we now turn.

Generally, the paging cost can be defined as: $\begin{matrix} {{{Page\_ Cost}(L)} = {\lambda \cdot C_{p} \cdot {\sum\limits_{S \in L}^{\quad}\quad{{S} \cdot {\sum\limits_{i \in S}^{\quad}\quad w_{i}}}}}} & (1) \end{matrix}$ where L is equal to {S₁, . . . , S_(k)}, λ denotes a user incoming call rate, and C_(p) indicates the cost of paging a single cell.

In Equation (1), the paging cost of a single location area having |S| cells is the product of the incoming call rate λ·Σ_(i∈s) w_(i) times the cost of paging all of the cells within every location area, C_(p)·|S|.

Similarly, an updating cost can be defined by: $\begin{matrix} {{{Update\_ Cost}(L)} = {\frac{1}{2} \cdot C_{u} \cdot {\sum\limits_{{i \in V}\quad}^{\quad}\quad{\sum\limits_{j \notin {{La}{(i)}}}^{\quad}\quad{r_{ij}.}}}}} & (2) \end{matrix}$ where C_(u) is the cost of a single update operation and C_(u) times r_(ij) is the update cost caused by traffic between cells i and j.

In Equation (2), the total updating cost within a wireless network, such as network 1, is the amount of traffic between location areas times C_(u).

To minimize the overall costs of a wireless network, the sum of the paging costs, represented by Equation (1) and updating costs represented by Equation (2), must be minimized. This can be represented by: Cost(L _(OPT))=min_(L){Update_Cost(L)+Page_Cost(L)}  (3) As will be understood by those skilled in the art, Equation (1) is a non-linear equation because it contains the product of two variables. The two variables being the size of the location area |S| and the cell weight w_(i). Consequently, Equation (3) is also non-linear since it contains Equation (1). To formulate a solvable expression it is necessary to convert the non-linear program given by Equation (3) into a linear program.

In one embodiment of the present invention, a linear program is generated from the non-linear program given by Equation (3) in order to provide approximations for the sum of the paging and updating costs. The details of how the present inventors generated a linear program from a non-linear one will be presented in more detail below. Before continuing, however, some additional comments are noteworthy.

In actual wireless networks, geographical considerations and network infrastructure may impose certain size (i.e., size of a location area) and connectivity constraints on the network. These considerations must be taken into account in order to generate a meaningful formulation. For example, because all the cells of a location area are connected to a single MSC (such as MSC 2A, 2B . . . 2N shown in FIG. 1), neither the size nor total population of a location area should exceed the capacity of an MSC.

These size constraints are taken into consideration by introducing two bounds, K_(max) and W_(max), on the maximal cell number and maximal population size of a location area, respectively. For every S∈L, it is required that |S|≦K_(max) and Σ_(i∈s) w_(i)≦W_(max). In another embodiment of the present invention, more general constraints bound, for each vertex i∈V, the size and weight of a location area containing i, i.e., |LA(i)|≦K_(i) and Σ_(j∈LA(i)) w_(j)≦W_(i).

Topological considerations also place constraints on how cells are grouped or clustered into location areas. For example, it may be that certain cells must reside in the same location area or other cells must reside in separate location areas. These constraints are defined by constants, b_(ij), for every pair of cells i, j∈V, namely: $b_{ij} = \left\{ \begin{matrix} 1 & {{{If}\quad i{\quad\quad}{and}\quad j\quad{must}\quad{be}\quad{in}\quad{different}\quad{LAs}};} \\ {- 1} & {{{If}\quad i\quad{and}\quad j\quad{must}\quad{be}\quad{in}\quad{the}\quad{same}\quad{LAs}};{and}} \\ 0 & {{Otherwise}.} \end{matrix} \right.$

The constants b_(ij) can be represented by a matrix B={b_(ij)}. Any location area plan (LAP), denoted by the symbol L, that satisfies both size and connectivity constraints is called a feasible location area plan.

In more detail, a feasible LAP can be generated as follows. Given a graph G(V,E), weights w_(i) and r_(ij) for every node i∈V, edge i, j∈V, bounds K_(max), W_(max), and connectivity matrix B, an L can be generated such that, $\begin{matrix} {{{{Cost}(L)} = {\min\begin{Bmatrix} {{\frac{1}{2} \cdot {\overset{\quad}{\sum\limits_{i \in V}}\quad{\overset{\quad}{{\sum\limits_{j \notin {{LA}{(i)}}}}_{\quad}}\quad r_{ij}}}} +} \\ {\lambda \cdot C_{p} \cdot {\sum\limits_{S \in L}\left( {{S} \cdot {\sum\limits_{i \in s}\quad w_{i}}} \right)}} \end{Bmatrix}}}{{subject}\quad{{to}:}}} & \left( {4a} \right) \\ {{\forall S_{1}},{{S_{2} \in {L:\quad{S_{1}\bigcap S_{2}}}} = 0}} & \left( {4b} \right) \\ {\forall{i \in {V:\quad{1 \leq {{{LA}(i)}} \leq K_{\max}}}}} & \left( {4c} \right) \\ {{\forall{i \in {V:\quad{{{\sum\limits_{j \in {{LA}{(i)}}}}_{\quad}w_{j}} \leq W_{\max}}}}}\quad} & \left( {4d} \right) \\ {{\forall i},{j \in V},{b_{ij} = {1:\quad{{{LA}(i)} \neq {{LA}(j)}}}}} & \left( {4e} \right) \\ {{\forall i},{j \in V},{b_{ij} = {{{- 1}:\quad{{LA}(i)}} = {{LA}(j)}}}} & \left( {4f} \right) \end{matrix}$

In sum, Equations (4a)-(4f) represent a non-linear program which takes into consideration the constraints discussed immediately above. It is Equations (4a-4f) which must be converted into a linear program. Before continuing, it should be noted that the term “linear program” is a term of art known by those skilled in the art of partitioning cells. Though a software program may eventually be written to carry out the linear program described herein, the two are not synonymous. The present invention seeks to minimize the sum of updating and paging costs using a linear program. The techniques set forth herein to minimize these costs are fundamentally different from existing techniques.

In one embodiment of the present invention, the next step in generating a linear program begins with defining a pair (V, d), where V is a set and d is a non-negative function d:V_(R)×V→

(called a semi-metric) if and only if d satisfies the following three conditions: (i) d_(ij)=d_(ji) for all i, j∈V (symmetry); (ii) d_(ii)=0 for all i∈V; and (iii) d_(i)≦d_(ik)+d_(jk) for all i, j, k∉V (triangle inequality).

As provided by the present invention, the function d: V_(R)×V→

is used to partition a graph representing multiple nodes into location areas. For every pair of nodes, i, j∈V , a variable d_(ij)∈{0, 1} is defined, such that, $d_{ij} = \left\{ \begin{matrix} {{a\quad{first}\quad{value}},\quad{e.g.},1,{{{if}\quad i{\quad\quad}{and}\quad j\quad{belong}\quad{to}\quad{different}\quad{LAs}};\quad{or}}} \\ {{a\quad{second}\quad{value}},{e.g.},0,{{if}\quad i{\quad\quad}{and}\quad j\quad{belong}\quad{to}\quad{the}\quad{same}\quad{{LAs}.}}} \end{matrix} \right.$

Those skilled in the art will recognize that conditions (i) and (ii) from above are met. Condition (iii), which requires triangle inequality, is also met as follows. Consider an assignment to the variables d_(ij) that induces a semi-metric. This assignment defines a partition of the graph into location areas in a natural way. For every node i∈V, the location area containing it, LA(i), is defined by, LA(i)={j|j∈VΛd_(ij)=0}, i.e., all nodes that are zero distance from node i. Edges (i, j)∈E for which d_(ij)=1 are referred to as cut edges and L denotes the partitioning of LAs induced by variables d_(ij).

Recall the matrix B defined above. It introduces constraints to ensure that a program generates meaningful results (i.e., practical groupings of location areas). In a further embodiment of the present invention, for every pair i, j∈V the constraints b_(ij)≦d_(ij)+1 are applied. If nodes i, j should be in the same location area then b_(ij)=−1, and the non-negativity constraint on d_(ij) yields d_(ij)=b_(ij)+1=0. Similarly, if nodes i, j are required to be in different location areas then b_(ij)=1. Because d_(ij)<1, it follows that d_(ij)=b_(ij)=1. If nodes i, j are not constrained then b_(ij)=0, and d_(ij)∈{0, 1}.

In one embodiment of the present invention, the paging cost of a wireless network in terms of the variable d_(ij) can be defined as follows: $\begin{matrix} {{{{Page\_ Cost}(L)} = {\lambda \cdot C_{p} \cdot {\sum\limits_{i,{j \in V}}^{\quad}\quad{\left( {1 - d_{ij}} \right) \cdot w_{j}}}}}\quad} & (5) \end{matrix}$ where it will be recognized by those skilled in the art that node i is paged whenever there is an incoming call to a user within the location area the node is assigned to, LA(i). Therefore, the network involved performs $\lambda \cdot {\sum\limits_{i,{j \in V}}^{\quad}\quad{\left( {1 - d_{ij}} \right) \cdot w_{j}}}$ paging operations over a given time interval.

The updating cost can also be represented in terms of the variable d_(ij) as follows: $\begin{matrix} {{{Update\_ Cost}(L)} = {\frac{1}{2} \cdot C_{u} \cdot {\sum\limits_{i,{j \in V}}^{\quad}{d_{ij} \cdot r_{ij}}}}} & (6) \end{matrix}$ where the updating cost(s) shown in Equation (6) is simply the cost of the partitioned edges multiplied by the cost of a single updating operation.

Combining Equations (5) and (6) we arrive at a linear program substitute for the non-linear program given by Equation (3), which represents the total cost we are trying to minimize or optimize, namely, $\begin{matrix} {\min\left\{ {{\lambda \cdot C_{p} \cdot {\sum\limits_{i,{j \in V}}^{\quad}{\left( {1 - d_{ij}} \right)w_{j}}}} + {\frac{1}{2} \cdot C_{u} \cdot {\sum\limits_{i,{j \in V}}^{\quad}{d_{ij}r_{ij}}}}} \right\}} & (7) \end{matrix}$

In further embodiments of the present invention, before a final linear program can be formulated, size and connectivity constraints must be applied to Equation (7). Recall the bounds K_(max) and W_(max) defined above. In this instance, for each node i∈V, $\begin{matrix} {{{{{LA}(i)} = \left\{ {{j❘{j \in {V\bigwedge d_{ij}}}} = 0} \right\}};}❘{{{LA}(i)}❘}} \\ {= {\sum\limits_{j \in V}{\left( {1 - d_{ij}} \right)\quad{\left( {{number}\quad{of}\quad{nodes}\quad{in}\quad{{LA}(i)}} \right).}}}} \end{matrix}$ and ${{w\left( {{LA}(i)} \right)} = {\sum\limits_{j \in V}{{\left( {1 - d_{ij}} \right) \cdot w_{j}}\quad\left( {{weight}\quad{of}\quad{nodes}\quad{in}\quad{{LA}(i)}} \right)}}},$ we can enforce the size constraints on each location area by adding for each node i∈V the constraints, |LA(i)Å≦K_(max) and w(LA(i))≦W_(max). Equation (7) can be rewritten as follows: $\begin{matrix} {{\min\left\{ {{\lambda \cdot C_{p} \cdot {\sum\limits_{i,{j \in V}}^{\quad}{\left( {1 - d_{ij}} \right)w_{j}}}} + {\frac{1}{2} \cdot C_{u} \cdot {\sum\limits_{i,{j \in V}}^{\quad}{d_{ij}r_{ij}}}}} \right\}}{{subject}\quad{{to}:}}} & \left( {8a} \right) \\ {{\forall i},j,{k \in {V:\quad{{d_{ij} + d_{jk}} \geq d_{ik}}}}} & \left( {8b} \right) \\ {{\forall i},{j \in {V:\quad{b_{ij} \leq {di}_{j} \leq {b_{ij} + 1}}}}} & \left( {8c} \right) \\ {\forall{i \in {V:\quad{{\overset{\quad}{\sum\limits_{j \in V}}\quad\left( {1 - d_{ij}} \right)} \leq K_{\max}}}}} & \left( {8d} \right) \\ {{\forall{i \in {V:\quad{{\overset{\quad}{\quad\sum\limits_{j \in V}}\quad{\left( {1 - d_{ij}} \right)w_{i}}} \leq W_{\max}}}}}\quad} & \left( {8e} \right) \\ {{\forall i},{j \in {V:\quad{d_{ij} \in \left\{ {0,1} \right\}}}}} & \left( {8f} \right) \end{matrix}$

In a further embodiment of the present invention, Equations (8a)-(8f) represent a linear program which can eventually be used to generate (i.e., partition) cell clusters or groups that can be used to derive efficient approximations of the sum of paging and updating costs. More specifically, given the restriction placed on d_(ij) by Equation (8f) (i.e., that it must be a 1 or 0), Equations (8a-8f) can be said to represent a linear, integer program.

Before continuing, it should be noted that the linear, integer program given by Equations (8a)-(8f) may be used in applications other than wireless communications. Any application which requires the partitioning of a graph (as that term is known by those in the art) using at least two parameters (e.g., cell edges/boundaries and cell size/properties) may make use of Equations (8a)-(8f).

Though the formulation of a linear, integer program is a novel accomplishment all by itself, more is needed before solutions can be generated and cells partitioned/grouped. Equations (8a)-(8f) are still considered very difficult to solve (so-called “NP hard”). More specifically, they would still require exhaustive searches or iterations to solve. In a further embodiment of the present invention, the restrictions placed on the linear integer program by Equation (8f) may be relaxed to allow approximate solutions to be generated in polynomial time (i.e., without exhaustive searches).

In a further embodiment of the present invention, the restrictions placed on the linear program by Equation (8f) may be relaxed to allow for fractional solutions, i.e., we only require that for all i, j∈V, d_(ij)∈[0,1]. The linear program generated by the present invention contains only O(n²) variables and O(n³) constraints. As will be recognized by one skilled in the art, the value of an fractional solution is a lower bound on the value of an optimal integral solution.

Though the generation of fractional solutions allows the linear program represented by Equations (8a)-(8f) to be solved without the need for an exhaustive search, once the fractional values are generated they must be used to partition cells or more specifically, to assign a cell to one or more location areas.

In yet a further embodiment of the present invention, the fractional values are rounded into integer values (e.g., 1 or 0) in order to so partition or assign each cell.

In one embodiment of the present invention, one of many techniques which may be used to round fractional values into integers is referred to as a region growing (sometimes called “ball growing”) technique.

Some notation useful in understanding such a technique is as follows. A ball b(i, r) of radius r, i.e., a subgraph induced by these nodes, and a function (r−d_(ij))/d_(jk) having edges (i, k) with only one endpoint j∈b(i, r) (note that d_(ij) is defined for all nodes (i, j)). A cut, δ(S), of a set of nodes S is the set of edges with precisely one endpoint in S. A weight of δ(S), cut(S), is defined to be $\sum\limits_{{❘{{{({i,j})}\bigcap S}❘}} = 1}{T_{ij}.}$ The cut of a ball is the cut induced by the set of vertices included in the ball. The volume, vol(S), of a set of nodes S is the weighted distance of the edges with both endpoints in S, i.e. $\sum\limits_{{({i,j})} \in S}{T_{ij}{d_{ij}.}}$ Finally, the volume of a ball is the volume of b(i, r) including the fractional weighted distance of edges leaving b(i, r). In other words, if (j, k) is a cut edge of ball b(i, r) with j∈b(i, r), then (j, k) contributes r_(jk)x (r−d_(ij)) weight to the volume of ball b(i, r). For reasons known to one skilled in the art, an initial volume (seed) I is also included to the volume of every ball (i.e. ball b(i, 0) has volume I).

In one embodiment of the present invention, rounding is carried out by first generating a graph G(V, E), |V|=n, having fractional assignment to the variables d_(ij) obtained from the linear program. Next, suppose the volume of the entire graph is ${F = {\frac{1}{2}{\sum\limits_{i,{j \in V}}{d_{ij}r_{ij}}}}},$ where the updating cost of the fractional solution is represented by C_(u)F. If the initial volume of the balls is F/n, balls are iteratively grown around arbitrary nodes of the graph until the cost of the cut is at most c1n(n+1) times the cost of the volume. A location area is then generated, consisting of the nodes in this ball. The nodes are then removed from the graph, and the process is repeated.

Table 1 summarizes the steps used to round fractional values generated by the linear program into integer values. TABLE 1 Round (G(V,E), {d_(ij)}): // Variable Initialization. H → G L

0 // Main loop while ∃ a node i ε H  S

0  r

0  // Grow ball  repeat   S

S ∪ b(i, r)   r

r + Δ  until cut weight (b(i, r)) ≦ cln(n + 1) · vol(b(i, r))  L

L ∪ S end

It should be noted that the order in which the nodes are considered is indeed arbitrary. That said, the present invention can also be applied to a heuristic that chooses an order in a particular manner, as follows.

In a further embodiment of the present invention, suppose c is some constant which will be determined later, and δ=min{(d_(ij)−r): j∉b(i, r), (d_(ij)−r)>0} is the remaining distance to the nearest vertex (among those with distance greater than zero) outside the current ball, then the process will terminate in polynomial time with a solution L that satisfies a set of constraints, and have a cost which is not much more than the fractional volume F.

It should be noted that the termination condition on region-growing guarantees an O(log n) approximation to the updating component.

Let α=cln(n+1), then $\begin{matrix} {{{Update\_ Cost}(L)} = {{\frac{1}{2}C_{u}{\sum\limits_{{balls}\quad b}^{\quad}\quad{{cut}(b)}}} \leq {\frac{1}{2}C_{u}\alpha{\sum\limits_{{balls}\quad b}^{\quad}{{vol}(b)}}} \leq}} \\ {{\frac{1}{2}C_{u}{\alpha\left( {{\frac{1}{2}{\overset{\quad}{\sum\limits_{i,{j \in V}}}{d_{ij}r_{ij}}}} + {\sum\limits_{{balls}\quad b}^{\quad}\frac{F}{n}}} \right)}} \leq} \\ {{\frac{1}{2}C_{u}{\alpha\left( {2F} \right)}} \leq {C_{u}\alpha\quad F}} \end{matrix}$ where the second line follows from the fact that balls found by the algorithm are disjoint. Note also that C_(u)F is precisely the updating cost of the fractional solution.

It can also be seen that the balls have radius at most 1/c. This fact follows from the following known lemma.

Lemma: For any vertex i and family of balls b(i, r), the condition cut (b(i, r))≦c1n(n+1)×vol(b(i, r)) is achieved for some r≦1/c.

Proof: We proceed by contradiction. We first set α=c1n(n+1). Next, the ball is grown continuously from r=0 to r=1/c, and suppose throughout this process, cut(b(i, r))>α×vol(b(i, r)). The incremental change in the volume becomes: $\begin{matrix} {{d\left( {{vol}\left( {b\left( {i,r} \right)} \right)} \right)} = {d\left( {{\sum\limits_{j,{k \in b}}{r_{jk}d_{jk}}} + {\sum\limits_{{j \in b},{k \notin b}}{r_{jk}\left( {r - d_{ij}} \right)}}} \right)}} \\ {= {\sum\limits_{{j \in b},{k \notin b}}{\mathbb{d}\left( {r_{jk}\left( {r - d_{ij}} \right)} \right)}}} \\ {= {\sum\limits_{{j \in b},{k \notin b}}{r_{jk}{\mathbb{d}r}}}} \\ {= {{cut}\quad\left( {b\left( {I,r} \right)} \right){dr}}} \\ {= {\alpha\quad{{vol}\left( {b\left( {i,r} \right)} \right)}{dr}}} \end{matrix}$ by assumption. The initial volume of a ball is, by definition, F/n, and the final volume is at most F+F/n if the ball covers the entire graph. Therefore, ${{\int_{F/n}^{F + {F/n}}{\frac{1}{{vol}\left( {b\left( {i,r} \right)} \right)}\quad{\mathbb{d}\left( {{vol}\left( {b\left( {i,r} \right)} \right)} \right)}}} > {\int_{0}^{1/c}{\alpha\quad{\mathbb{d}r}\quad{and}\quad{so}\quad\ln\quad\left( {n + 1} \right)}} > {\frac{1}{c}\alpha}} = {{\ln\left( {n + 1} \right)}.}$

In an additional embodiment of the present invention, the rounded paging cost is bounded by: ${{Page\_ Cost}\quad(L)} = {{{\lambda C}_{p}{\sum\limits_{{balls}\quad b}^{\quad}\quad{\sum\limits_{i,{j \in b}}^{\quad}\quad w_{j}}}}\quad = {{\frac{c}{c - 2} \cdot \lambda}\quad C_{p}\quad{\sum\limits_{{balls}\quad b}^{\quad}\quad{\sum\limits_{i,{j \in b}}^{\quad}{\left( {1 - {2/c}} \right)w_{j}}}}}}$ where $\lambda\quad C_{p}{\sum\limits_{b}^{\quad}\quad{\sum\limits_{i,{j \in b}}^{\quad}\quad{\left( {1 - {2/c}} \right)w_{j}}}}$ is a lower bound on the paging cost of a fractional because the radius of the balls is at most 1/c and, therefore, by the triangle inequity 1−d_(ij)≧1-2/c for any nodes i and j that belong to the same ball. In an additional embodiment of the present invention, this implies that our solution applies a $\frac{c}{c - 2}$ approximation to the paging cost.

In yet a further embodiment of the present invention, a final approximation factor is the maximum approximation factor of the two components, namely: $\begin{matrix} {{\max\quad\left( {{c\quad{\ln\left( {n + 1} \right)}},\frac{c}{c - 2}} \right)} = {O\quad\left( {\log\quad n} \right)}} & (9) \end{matrix}$

It can be shown that Equation (9) satisfies size constraints as well. More specifically, Equation (9) represents a pseudo-approximation. A pseudo-approximation gives an approximate solution to a problem with slightly different parameters. In this case, the size bound parameters, K_(max) and W_(max), are perturbed slightly. Specifically, a set of location areas are generated such that each location area has size at most $\frac{c}{c - 2}K_{\max}$ and weight at most $\frac{c}{c - 2}{W_{\max}.}$

Proof of the first of these statements is as follows. (Proof of the second is similar.) Because we know that ∀i∈V:Σ_(j∈V)(1−d_(ij))≦K_(max)·Fix i, therefore, $\begin{matrix} {{\frac{c}{c - 2}K_{\max}} \geq {\frac{c}{c - 2}{\sum\limits_{j \in V}^{\quad}\quad\left( {1 - d_{ij}} \right)}}} \\ {\geq {\frac{c}{c - 2}{\sum\limits_{j \in {{LA}{(i)}}}^{\quad}\quad\left( {1 - d_{ij}} \right)}}} \\ {\geq {\frac{c}{c - 2}{\sum\limits_{j \in {{LA}{(i)}}}^{\quad}\quad\left( {1 - \frac{2}{c}} \right)}}} \\ {= {\sum\limits_{j \in {{LA}{(i)}}}^{\quad}1}} \end{matrix}$

The last term is the size of LA(i). Note that c is an arbitrary constant. The larger c is, the closer the solutions are to true size bounds. However, if the approximation factor grows like cln(n+1), overall costs may increase. The tradeoff is between being close to the size constraint on the one hand and having a better overall cost on the other. It should also be noted that if the bounds K_(max) and W_(max) are not specified (i.e. can be arbitrarily large), then the techniques presented above can be viewed as exact approximations.

In still further embodiments of the present invention, rounding can be carried out with more general size and weight constraints. For example, constraints for each vertex i∈V on the size and weight of a location area containing i, i.e., |LA(i)|≦K_(i) and ${\sum\limits_{j \in {{LA}{(i)}}}^{\quad}\quad w_{j}} \leq W_{i}$ may be applied. This requires adding many constraints exponentially to a linear program for each node i which force subsets containing i that exceed K_(i) and W_(i) bounds to have some large d_(ij). The rounding techniques set forth above guarantee that no location area has a large diameter. Therefore, it can be assumed that large subsets will be subdivided.

Though the above discussion has focused on a few rounding techniques, it should be understood that others may be used without departing from the spirit or scope of the present invention.

The above discussion has also assumed that cells to be grouped, partitioned or clustered do not form a special cluster referred to as a “line” graph.

If, however, cells can be formed into a line cluster, then the present invention is also capable of generating optimal or minimum costs associated with these special types of cell clusters.

For example, many times wireless networks are constructed along interstate highways or the like. It turns out that many of the cells form a line cluster. Economically, it is sometimes better to treat such clusters separately. In an alternative embodiment of the present invention, the network costs associated with a line cluster can be given by: $\begin{matrix} {{{Cost}(i)} = {\min\limits_{q = 1}^{i}\begin{Bmatrix} {{\lambda \cdot C_{p} \cdot {{i - q + 1}} \cdot {\sum\limits_{j = q}^{i}\quad w_{j}}} +} \\ {{C_{u} \cdot r_{{q - 1},q}} + {{Cost}\left( {q - 1} \right)}} \end{Bmatrix}}} & (10) \end{matrix}$

The generation of costs using Equation (10) is based on the following assumptions and explanation.

A line is formally defined as a graph where exactly two nodes have “degree 1”, where the degree of a node is the number of edges that have an end-point at that node, and the remaining nodes have degree 2. Consider a line G(V, E), connectivity matrix B and size bounds K_(max) and W_(max). Assume further that line nodes are indexed adjacently in increasing order from 1 to n, i.e., for every i, j, r_(ij)>0 and b_(ij)≠0 only if |i−j|=1. The cost of the optimal LAP on the line graph G_(i) induced by the first i nodes, [1 . . . i]∈V is denoted by Cost(i), where Cost(0)=0 is the cost of an empty line.

Cost(i) (and the actual LAP itself) can be computed recursively. For example, suppose the optimal LAP in a graph G_(i) is {S₁, . . . ,S_(k)} for some k. Let q be the index of the left border node in S_(k) (i.e., the node with the lowest index in S_(k)). Then the optimal LAP for G_(q−1) must have the same cost as {S₁, . . . , S_(k)} or else {S₁, . . . , S_(k)} would not be optimal for G_(i). Thus, Cost(i) is the sum of Cost(q−1) and the cost incurred by S_(k) is that given by Equation (9).

In yet another embodiment of the present invention, cells in a line may be grouped using a dynamic program representing a sum of weighted values associated with each cell and each edge between adjacent cells, and grouping constraints. Cells are then assigned to a group based on solutions of the dynamic program. Dynamic programming techniques are known by those skilled in the art.

The dynamic program provided by the present invention provides an optimal LAP for a line graph in time O(n²), where n is the number of nodes in the line. First, the Cost(i) for i from 1 to n is calculated and the result of each iteration is stored in a table so it may be used in the next iteration. In addition, the sum of weights is also stored to avoid an extra factor of n in run time.

As before, connectivity and size constraints must be taken into consideration. Connectivity constraints b_(ij)=1 split the line graph into multiple line graphs. Connectivity constraints b_(ij)=−1 simply forces nodes to be in same location area.

Size constraints are easily accommodated as well. As an example, consider the maximal LA size constraint K_(max) (the weight constraint W_(max) is analogous). When α=max{1,i−K_(max)+1}, the size constraint forces the border node q to be amongst nodes α, . . . , i, and so the minimization in Equation (10) is just taken over this range.

Table 2. summarizes the steps involved in generating location area groups for a line ignoring connectivity constraints.       //Variable Initialization.   C[0] = 0   L[0] = 0   f_(0,1) = 0       //Main loop from 1 to n.  for i = 1 to n do    C[i] = ∞      //Updating the max weight of LA LA(i).    α = max {1, i − K_(max) + 1}    W_(LA) = Σ_(j=α) ^(i) w_(j)       //Loop for checking all border nodes.    for q = α to i do       //Checking if q can be a border node.     if b_(q−1,q) = 0 then      tmp = λ · C_(p) · (i − q + 1) · W_(LA) +          + C_(u) · f_(q−1,q) + C[q − 1]      if tmp <C[i] then        //A less expensive LAP was found.       C[i] = tmp       L[i] = L[i] = L[q−1] ∪ {{q..ii}}     end-if    end if    W_(LA) = W_(LA) − w_(q)   end-for  end for  return C[n], L[n] end where L and C are two arrays that store the optimal LAP and its cost for the segment [1 . . . i], respectively and where the variable W_(LA) records the total weight of the nodes q, . . . , i initialized by ${W_{LA} = {\sum\limits_{j = \alpha}^{i}\quad w_{j}}},$ and decreased by w_(q) before increasing a border node index, q.

Given a line G(V, E), connectivity matrix B and maximal LA size K_(max), an optimal LAP of G(V, E) and its cost can be determined for a line.

For an empty line without nodes there are no paging or updating costs and its total cost is Cost[0]=0. In an additional embodiment of the invention, the cost of different solutions is calculated when each one of the feasible border nodes q of LA(i) (the last max {1, I−K_(max)1} nodes of the line), is checked using the equation, λ·C _(p)·(i−q+1)·W _(LA) +C _(u) ·r _(q−1,q) +C[q−1]  (11)

By inductive assumption, C[q], q<i, can be shown to be the cost of the optimal LAP for the line graph induced by nodes [1 . . . q]. Therefore, the cost of the optimal LAP can be generated when a given node q is forced to be a border node of LA(i). Because the minimum of these values is used over all feasible border nodes q, both the optimal LAP and its cost can be generated.

The above discussion has presented some examples of the present invention. Further examples may be envisioned by those skilled in the art. For example, one or more of the functions, steps or processes discussed above may be carried out by one or more programmed devices (e.g., computer, microprocessor, etc. and/or associated memory devices, hard drives, floppy discs, etc. using software, firmware, etc.). The scope of the present invention is, however, defined by the claims which follow. 

1. A method for grouping cells comprising: generating a linear program representing a sum of weighted values associated with each cell and each edge between adjacent cells and grouping constraints; and assigning a cell to a group based on solutions of the linear program.
 2. The method as in claim 1 wherein the solutions comprise fractional values.
 3. The method of claim 1 wherein each cell comprises a wireless cell.
 4. The method of claim 1 wherein the weighted values associated with each cell represent a paging cost and the weighted values associated with each edge between adjacent cells represent an updating cost.
 5. The method of claim 2 further comprising rounding the fractional values into integer values.
 6. The method as in claim 5 further comprising rounding the fractional values using region growing.
 7. The method as in claim 1 wherein the linear program comprises a variable, where the variable equals: a first value, if elements i and j belong to different groups, or a second value, if i and j belong to the same group.
 8. The method as in claim 7 wherein the first value equals 1 and the second value equals
 0. 9. The method as in claim 1 wherein the group comprises a location area associated with one or more wireless networks.
 10. The method as in claim 5 further comprising approximating costs associated with updating and paging operations of one or more wireless networks from the rounded values.
 11. A method for grouping cells in a line comprising: generating a dynamic program representing a sum of weighted values associated with each cell and each edge between adjacent cells and grouping constraints; and assigning a cell to a group based on solutions of the dynamic program.
 12. A programmed device for grouping cells operable to: generate a linear program representing a sum of weighted values associated with each cell and each edge between adjacent cells and grouping constraints; and assign a cell to a group based on solutions of the linear program.
 13. The programmed device as in claim 12 wherein the solution comprises fractional values.
 14. The programmed device of claim 12 wherein each cell comprises a wireless cell.
 15. The programmed device of claim 12 wherein the weighted values associated with each cell represent a paging cost and the weighted values associated with each edge between adjacent cells represent an updating cost.
 16. The programmed device of claim 13 further operable to round the fractional values into integer values.
 17. The programmed device as in claim 16 further operable to round the fractional values using region growing.
 18. The programmed device as in claim 12 wherein the linear program comprises a variable, where the variable equals: a first value, if elements i and j belong to different groups, or a second value, if i and j belong to the same group.
 19. The programmed device as in claim 14 wherein the first value equals 1 and the second value equals
 0. 20. The programmed device as in claim 12 wherein the group comprises a location area associated with one or more wireless networks.
 21. The programmed device as in claim 12 further operable to approximate costs associated with updating and paging operations of one or more wireless networks from the rounded values.
 22. A programmed device for grouping cells in a line operable to: generate a dynamic program representing a sum of weighted values associated with each cell and each edge between adjacent cells and grouping constraints; and assign a cell to a group based on solutions of the dynamic program. 